"""
@Author : 合肥一元数智教育科技有限公司
@Date :  2025/6/6 8:46
@Description : 
为了减少系统对读个线程的维护开销，可以提升线程的复用， 可以将线程维护在一个容器中，这个容器称之为线程池
"""
import threading
import time
from concurrent.futures import ThreadPoolExecutor

# 创建线程池对象
thread_pool = ThreadPoolExecutor(max_workers=3, thread_name_prefix='my_thread')


# 创建任务
def sub_task(num):
    time.sleep(0.1)
    thread_id = threading.current_thread().ident
    thread_name = threading.current_thread().name
    print(f'线程{thread_id}:{thread_name}正在执行第{num}任务')
    return f'线程{thread_id}:{thread_name}正在执行第{num}任务'


# 创建线程20 执行任务
results = []
for i in range(20):
    # 将任务交给线程池   i  任务参数 num
    res = thread_pool.submit(sub_task, i)
    results.append(res)

print('-------------------------------------')
# 遍历线程执行的结果
for res in results:
    print(res.result())

# 释放资源
thread_pool.shutdown()
